package com.seeyon.apps.kkSample.manager;

import com.seeyon.oainterface.exportData.commons.AttachmentExport;

import java.util.List;
import java.util.Map;

/**
 * e签宝回调事件通知类（V3）
 */
public interface KKEsignCallBackManager {

    /**
     * 解析回调事件类型
     *
     * @param bodyMap
     */
    public void action(Map<String, Object> bodyMap);

    /**
     * 更新流程表：回写附件
     *
     * @param appUrl
     * @param headerParams
     * @param signFlowId
     * @param tmpCode
     */
    public void updateFlowForm(String appUrl, Map<String, Object> headerParams, String signFlowId, String tmpCode);

    /**
     * 关联流程附件
     *
     * @param summaryId            流程id
     * @param fileId               文件id -- 单控件单文件
     * @param subRenference        随机数(subRenference) -- 单控件单文件
     * @param attachmentExportList 附件集合 -- 单控件多文件
     * @param subRenferenceMore    随机数(subRenference) -- 单控件多文件
     *                             subRenference：ctp_file表中的ID，ctp_attachment表中的SUB_REFERENCE
     */
    public void relationAttachmentsFlow(Long summaryId, String fileId, Long subRenference, List<AttachmentExport> attachmentExportList, Long subRenferenceMore);

    /**
     * 通过签署流程Id查询日志表中的， 表单流程id
     *
     * @param tmpCode    日志底表编号
     * @param signFlowId 签署流程id
     * @return
     */
    public String getSummaryId(String tmpCode, String signFlowId);

    /**
     * 更新e签宝签章日志底表
     *
     * @param signFlowId 签署流程id
     * @param logMap     需要更改的日志表数据
     * @param tmpCode    模板编号
     */
    public void updateUnFlowForm(String signFlowId, Map<String, Object> logMap, String tmpCode);
}
